package e_Collections;

/**
 * 学生类，实现了Comparable接口用于比较学生年龄。
 * @author Cheng-02
 * @version V1.0
 * @Package e_Collections
 * @date 2024/4/8 下午2:07
 */
public class Student  implements Comparable<Student>{
    private String name; // 学生姓名
    private Integer age; // 学生年龄

    /**
     * 构造函数，用于创建一个新的学生对象。
     * @param name 学生的姓名。
     * @param age 学生的年龄。
     */
    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取学生的姓名。
     * @return 返回学生的姓名。
     */
    public String getName() {
        return name;
    }

    /**
     * 设置学生的姓名。
     * @param name 要设置的学生姓名。
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取学生的年龄。
     * @return 返回学生的年龄。
     */
    public Integer getAge() {
        return age;
    }

    /**
     * 设置学生的年龄。
     * @param age 要设置的学生年龄。
     */
    public void setAge(Integer age) {
        this.age = age;
    }

    /**
     * 重写toString方法，用于返回学生对象的字符串表示。
     * @return 返回格式化的学生信息字符串。
     */
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    /**
     * 实现compareTo方法，用于比较两个学生的年龄。
     * @param o 要比较的另一个学生对象。
     * @return 返回年龄差值，若当前学生年龄大于对方，则返回正数；若小于，则返回负数；若相等，则返回0。
     */
    @Override
    public int compareTo(Student o) {
        return  this.getAge() - o.getAge();

    }
}
